package games.gong.durid.service;

import games.gong.durid.entity.Permission;
import games.gong.durid.entity.Role;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface RoleService {
    
    /**
     * 添加角色
     * @param role 角色信息
     * @return 添加的角色数量
     */
    int addRole(Role role);
    
    /**
     * 删除角色
     * @param id 角色ID
     * @return 删除的角色数量
     */
    int deleteRole(Long id);
    
    /**
     * 更新角色
     * @param role 角色信息
     * @return 更新的角色数量
     */
    int updateRole(Role role);
    
    /**
     * 根据ID获取角色
     * @param id 角色ID
     * @return 角色信息
     */
    Role getRoleById(Long id);
    
    /**
     * 获取所有角色
     * @return 角色列表
     */
    List<Role> getAllRoles();
    
    /**
     * 根据用户ID获取角色列表
     * @param userId 用户ID
     * @return 角色列表
     */
    List<Role> getRolesByUserId(Long userId);
    
    /**
     * 根据角色ID获取权限列表
     * @param roleId 角色ID
     * @return 权限列表
     */
    List<Permission> getPermissionsByRoleId(Long roleId);
}